What is the best method to create this kind of reflection and how to animate it?

What is the best method to create this kind of reflection and how to animate it?

As @gandalf3 mentioned, Cycles is not great at this, if you want to make your render physically accurate; My approach can give you photo realistic results, which are not, however, physically accurate.
You can use a Displace modifier, a Stucci procedural texture and an empty for Texture Coordinates in order to simulate the water movement. Do keep in mind that you'll need a lot of samples in order to get a usable image and a build with the Metropolis patch.
To do this, first add a subdivided plane (Shift + A>Mesh>Plane); then, go to the Modifiers tab in the Properties editor and add a Displace modifier and press the New button to add a new texture. After that, go to the Texture tab and select Stucci; you can later tweak this setting for better results.

Then add a Empty, go back to the Modifiers of the plane and select Object in the drop down list for Texture Coordinates; after that, set the object to be the empty you created earlier.

You can then animate the position and/or rotation of the empty, in order to "animate" the water movement.
Then you can simply add some glossyness to the plane point a lamp at it and render.
A better way is to simulate Throw Patterns on a Spotlight.
Add a Spotlight (Shift + A>Lamp>Spotlight); then add another plane, in the location of the spotlight, and move it down. After that, parent the plane to the spotlight, by selecting the plane first and then the spotlight and pressing Ctrl + P>Offset (Keep Offset). Now, go to the node editor and add a material to the plane, wich looks like the following node tree:

In order to animate the caustics, you can use a Vector Mapping node.

Here, you can animate the X and Y values, for the location, in order to move the caustic pattern around.
Now you can point the spotlight at your objects and git it a test render. Make sure the strength of the spotlight is rather high - I used 2000 - otherwise, you'll not see the light on your object. Also, you can control the softness of the throw pattern by adjusting the distance of the plane to the spotlight or the Size field found in the Lamp tab, on the Properties editor, when the Lamp is selected:

This gives me this result:

There is now Caustics support since Blender 3.1
There is a great tutorial at blendernation.com (linked to Cycles | Water Uber Shader). The fake Caustics shader is explained in Part 1 starting from 18:03.
There has been an approach with Metropolis sampling.
There is a new Add-on by Eric Edelo, a "Fast & realistic glass shader for Cycles" called Prism.
One of its main features are:
Super-fast caustics with colors, dispersion & absorption
You have to pay $6.99 for it, but it should close this gap... This Post is not intended to be an advertisment and I'm not affiliated with Blender Market, I just found out about this news on blendernation.com and think, it might help you solve your question.
There is a new "fake" method for the effect you're looking for with Geometry Nodes: https://www.youtube.com/watch?v=C9iQKsShYIM
Is it has to be done in Cycles? If not, check Yafaray as an option for this kind of effects.
The trick in the scene below is the reflecting material which is 50/50 mix of Water and Mirror (shiny diffuse with 0% diffuse and 100% mirror reflection). You can adjust the proportion as per required brightness of the effect.. or should I say "realism"? :-)
It is also quite important to have fairly large caustical photon radius (1 or higher) and quite small number of mixes (50 or less) to produce sharp lines.
Also equally important to create not too sharp and not too soft edges on reflective surface, so carefully watch the number of subdivisions on the surface -- too many of them will blur the result. 
To do caustics, I stepped to Luxcorerender and ended up with Appleseed-Render for Blender 2.8.
I did this with Blender 2.8 + Appleseed Render Add-on in a few minutes (just 200 Samples without denoising):
Blenderfile: https://drive.google.com/open?id=1dBlC4ulL06xoMoZKYBtfs4DaEb3G3oqF
Add-on (Appleseed beta for Blender 2.8 on Discord server under: #builds): https://forum.appleseedhq.net/t/how-to-download-latest-build/808
The Appleseed-Render is already included in the Add-on