I found out an answer. I made a function that uses noise to check if position above a point is not a part of a land.
func is_point_on_surface(pos: Vector2i, surface_up_vector: Vector2i) -> bool:
# surface_up_vector should be negative because
# noise goes in direction +x and -y <--- that's why
var neighboor_pos = pos + (block_size * -surface_up_vector)
var noise_val: float = noise.get_noise_2dv(neighboor_pos * 0.1)
return noise_val > min_noise_val