Přišel jsem na způsob, jak to udělat, aby to fungovalo, na který nejsem nijak zvlášť hrdý, ale funguje to. Pokud nemůžete být v transakci při připojování databáze, nejprve transakci ukončete.
db.setTransactionSuccessful();
db.endTransaction();
db.execSQL("ATTACH DATABASE ? AS names",new String[]{namesDb});
db.beginTransaction();