Do you intend to have any physics involved at all? Like it would eventually fall?
Or you mean that the projectile always stays at the same elevation relative to terrain until it reaches its target?
Does it only go in the direction fired, or does it track target at all?
If it is only going in direction shot but should conform to terrain, my first thought is just set a constant velocity in fired direciton, and then on a timer run a down facing line trace to get distance from terrain. Just set world Z location to account for any difference from your desired height.
To smooth it out, you could use a spring arm with lag enabled that the projectile is child of, and actually update that spring arms world location. Or you could just update the location at a fast interval (or even on tick) for smoother movement.
If it needed to home, you’d need to update the rotation and velocity using Find Look at Rotation - though there’d be a bit more involved than that.