I found that I need to give users access to native query editing, and therefore unlimited access to the whole database, for them to be able to upload csv. When I provide users with unrestricted access to the csv schema without native query editing, they are not able to see the upload csv button.
However according to the Metabase docs here Native query editing isn’t required for uploading.
How can I give users permission to upload csv files without granting them umlimited access to the entire database?