Currently this is the rules governing how water flows.
For each Cell;
-- if Cell water > threshold
---- if Cell height > neighbor height
------ if Cell water > neighbor water - height difference
-------- Spread water from Cell to neighbor
Basically, the cells height has to be greater or within a range of the neighbor. Then the cell must have more water that the neighbor before the cell will spread it's water.
Happy Coding