The idea behind GeoWebCache is that if a tile is available in the cache it will grab it and send it back to the client, it won't even bother making the round trip to your database. So it won't make a call to the SQL Server database unless the tile is not there. The trip to the SQL database is exactly what you are trying to cut out by using GeoWebCache, if it had to keep going back to check if it has changed then you would lose all benefit of it.
All this being said, GeoWebCache does provide a mechanism for setting expiration on tiles. From their intro page (which also has a snazzy diagram showing a high level overview of how GWC works)
GeoWebCache can even be used in the case when maps aren’t completely static, since it allows for the selective expiration of tiles, so that data remains current. In this respect GeoWebCache acts as an all-purpose accelerator for map rendering.
Tile expiration times are set in the
geowebcache.xml file. You can read more about how to set this up on their Tile Expiration page. Big note on this though, this is not something I have ever used due to the variation of cache expiration we would need for our 1000+ layers. We just don't use caching for updating layers, or we setup auto deletions of a layers tile cache every week/month/year. So have a look, give it a go and report back to me :)