You currently have four types of notification message: Low, Medium, High & Out of Range.
If Blynk allowed it, you would be getting notification alerts every 2.5 seconds, or almost 1,500 notifications per hour - all day, every day.
For a push notification to be of any use, it needs to tell you that something notable has happened, not keep telling you the same thing over and over and over again. So, you only want to send a notification when the status changes - say from Medium to High. To do this, I’d use a flag to keep track of the fact that a message regarding a particular notification (Medium for example) has already been sent, and that another notification doesn’t need to be sent until the level changes to either Low or High.
This could/will still cause you some issues when the water level is very close to the threshold between two of your levels. You use 20 as the threshold between High and Medium, and a Long variable type to store the distance. 19.999999999 will give a Low message 20 will give a High message so you can expect subsequent readings to hover between Low and High.
If you used an integer for distance then the reading would need to change from 19 to 20 to trigger a notification and depending how you did your rounding it would probably require a 0.5 (cm ?) change in level to cause the flip between Low and High.
Personally, I wouldn’t even bother with a notification for Medium (which presumably is the norm) only for Low and High I fell these are critical situations. Because of my age, I’d also use a set of LED widgets in the app to show the level using an old VU meter style of display, with green LED for the middle range and red for high or low. The youngsters would use a gauge widget instead