Using a stencil buffer you could do something pretty similar, since there isn't really `realistic` refraction of light, you could just have it so that the puddles are a mask of an animation and then you put that into the stencil buffer and then where there are stencil bits you then draw the whole background at an offset, so wherever there are puddles you'll see an offset that simulates some kind of refraction. You could do it in three passes, each overlapping, like a fake emboss effect, with a different offset for each part of the emboss - the hilite edge, the main, and the shadow edge, to create more of a curvature look. At such small scale you probably wont notice it's not real bumpmapped raytracing.
Or do it all manually in a pixmap and use DrawPixmap.
Or do it all manually in a pixmap and use DrawPixmap.