My experience is that it only pushes new or changed information.
I use B2 and let my buckets handle lifecycle rules. In my case, I have created a bucket to match each of my datasets on FreeNAS. So, for example, I have a "Documents" dataset on FreeNAS, and I let the "Documents" bucket on B2 "Keep All Versions". So my resume, for example, always has every version available on line. For a "Movies" dataset on FreeNAS, the "Movies" bucket on B2 is set to "Keep Only The Last Version". If I edit some metadata on a few movies, it only seems to push the changed movies, not all of them. Subsequent backups get much shorter, as only changes appear to upload. And this way, I save storage on B2 because I don't need versions of movies or music, etc... They don't generally change.
Once a year or so (whatever is best in your case), I'd make a hard drive local copy of your datasets and keep somewhere safe like a family members house for safe-keeping. If you have a fire, God forbid, it would be a terrible time to realize you can't recover your online B2 copies. This is especially true if you encrypt your backups on B2 like I do.
If you trust B2 and don't encrypt, it's much simpler. And for what it's worth, you could use B2 to periodically make a "Snapshot" of your bucket for long-term safekeeping, but you'd have to pay for storage to keep it up there, or download it to another location or online provider...