Needing to refresh via button and "live" are two different things.
You could use On-Demand App Generation (ODAG) / Dynamic Views for an app that can be refreshed manually by a user using a button, or you could use an extension to allow manual reloads (though this approach is problematic because users would need update rights on the app).
Live isn't really an option, but you could set the app to constantly refresh via QMC or manual tasks and get near-real-time.
There is no way to see truly live data in Qlik - there's always a chance that something has updated between the time of the last refresh (manual or automated). This is similar to most BI / reporting tools.
When using the ODAG approach, you can have the template app run whatever SQL you want, so that when it is refreshed (either when run from the selection app or via dynamic views) it runs the SQL in question and pulls fresh data from the data source. Of course, you'd need to make sure the performance of your queries is such that they return a result in a timely manner, or the whole thing won't be particularly useful. ODAG wasn't originally intended for this sort of use, but it actually works quite well.