Ended up looking more like lava really.
Just a quick test, not sure if I did it efficiently or how you're supposed to.
It just uses an array to store 1s wherever there's existing lava or a wall, and 0s where there is empty space. Each frame it loops through all the lava cells and checks the array to see if there's empty space in any adjacent cell below it, if there is then it moves the lava sprite there and updates the array accordingly.
The blobby look was accomplished by applying blur shaders to the layer, then sharpening the alpha back to a hard edge using a threshold shader.