I recently had to detect whether a MySQL server had any tables that didn't support transactions (mainly MyISAM).
The only problem is that this server had close to 5000 indivitual databases, and my usual query didn't cut it:
SELECT information_schema.TABLES.TABLE_SCHEMA,
information_schema.TABLES.TABLE_NAME,
information_schema.TABLES.ENGINE,
FROM information_schema.TABLES
WHERE information_schema.TABLES.TABLE_SCHEMA not in ('performance_schema', 'mysql', 'information_schema')