I tried putting curly brackets around the value of database like you mentioned. {db; name} But the server was treating the brackets as part of the database name and so did not work. I tried double quotes like "db; name" which also didn't work.
please, can you try
'"db; name"' .. double quotes nested in apostrophes
Not sure what else I can try or whether the ODBC driver supports database name with a semicolon at all. I know that in the case of password we can put the string enclosed within curly brackets to escape special characters but not appears to be working for the database.