Advice on how to change textures on an object during gameplay

I’m making a typical farming type game in which the player owns a farm. The player has a small expanse of farm land that can have seeds planted in it, can be watered, etc. I’d like there to be different textures for each state (plain, tilled, planted, watered, etc) and I don’t quite know how or what to do. Should I make a series of planes? Is there a way to change specific tiles of terrain? Any recommendations are greatly appreciated! Thank you!

If you’re doing a 2D-style game (like FarmVille), I would use a Quad for the tile and just create an array that stores all the textures for that object. When it moves from one state to the next, just change the index and apply the new texture.