Если база данных отсутствует (не совсем понятно), пакет не будет компилироваться, поэтому код не будет запущен.Это означает, что любые тесты на существование базы данных не пройдут.
Если предположить, что базы данных действительно появляются и исчезают случайным образом, единственным «практичным» вариантом является динамический SQL
...
IF DB_ID('FirstDB') IS NOT NULL
SET @sql ='select * from FirstDB.dbo.tablename'
IF DB_ID('SecondDB') IS NOT NULL
SET @sql = @sql + CASE WHEN @sql = '' THEN '' ELSE 'union ' END +
'select * from SecondDB.dbo.tablename'
...