OVER and PARTITION BY for db size change
It's the daily change, if the snapshots are taken daily (snapshot_time column is where I assume you're getting the snapshot time data).

Partitioning restarts computation each time a unique value for the column (or combination of columns) specified in the PARTITION BY is found. Even though you are sorting (ORDER BY instance, db, snapshot) you aren't aggregating data across the partitions in any way without an aggregation function preceding OVER().