Maybe you could do an effect 'like' that with sprites. If you had a big background image, then made a grid of sprites you could adjust the UV coordinates of each sprite to suit the position, then interfere with the UV coordinates.
I did this on a smaller scale, a full screen picture of some water with 2 sprites and each vertex UV mapped with sin/cos offsets. It did give a good impression of waves, even with just 2 layers. You could also use a seperate sprite for each piece, like say 1 sprite per bubble. Remember though that there is no reason why you can't make a 3D effect and use it as the backdrop to a 2D game, lots of developers do that.