Duplicate database to roll back theme & content changes

That will work – as long as you’re the only user. If other users have access to the site you’d also have to port over their work to the other database. If that’s the case, you may want to copy your entire website to a staging site, make the changes there, and once changes are complete push everything (database and files, assuming files are also necessary) to the live site.