If the database names and table names are static and not going to change (ie no new ones coming in and none going away), then I'd recommend hard-coding it all in.
Now, if the table names and database names are going to be dynamic (ie adding and removing over time), you are going to need to do some sort of dynamic SQL. If you go with the dynamic SQL route, I would ALSO recommend looking at the sys.columns table to make sure that the storeid and storename are valid columns.
The way I'd do it is have a table variable that stores the database, the table, and a row number. Then your TSQL will looks something like:
SELECT CASE WHEN rownumber = 1 then 'SELECT ' + databasename + ', ' + tablename + ', storeID, storename FROM ' + databasename + '.dbo.' + tablename ELSE 'UNION ALL SELECT ' + databasename + ', ' + tablename + ', storeID, storename FROM ' + databasename + '.dbo.' + tablename END AS tsql
Now you have a column that has all of your TSQL to run. Put that column into a variable (STUFF should be able to handle that) and run the query. NOTE - I would PRINT it first to make sure it looks like what you expect.