Ho trovato un modo per farlo funzionare, di cui non sono particolarmente orgoglioso, ma fa il suo lavoro. Se non puoi essere in una transazione quando alleghi un database, termina prima la transazione.
db.setTransactionSuccessful();
db.endTransaction();
db.execSQL("ATTACH DATABASE ? AS names",new String[]{namesDb});
db.beginTransaction();