db.all(`SELECT * FROM fates WHERE message="${newFate.toUpperCase()}"`,(err,rows)=>{
I suspect setting a local variable to JSON.stringify(newFate.toUpperCase()) here, and using it thereafter for the new fate text, will fix the double quote funny business.
it'll still break on single quotes, but whatever this is aunty we're talking about here
I didn't add dupe checking to addfate because it seemed unlikely there would be TRUE dupes (i.e. same wording and punctuation), but it's easy enough to add. And would definitely prevent dupe single-word fates.