I want to be able to manage my Supabase project as a code, with regards to the SQL tables, the functions, auth, et cetera.
The purpose is to allow myself to version control the project.
I have gone through the official documentation and have not found anything pertaining to this. The closest approach I can find is simply version controlling all the SQL code being used - but that is not reassuring for production purposes.
Everything (except for some auth related features) you mentioned can be done with the Supabase CLI and it's migration capabilities. There is a guide on thw website explaining how to manage environments for this sort of setup https://supabase.com/docs/guides/cli/managing-environments.