I've never read CO's contract of carriage, but most airlines' contracts provide that if the schedule changes by a "signficiant" margin (and I'd say two hours is significant), they will try to change it to something palatable to you, or they'll refund the ticket. Generally, however, they are only required to get you from A to B, and if A is SJC, then they certainly aren't required to change your ticket to SMF.
That said, your request to change it to SMF isn't at all unreasonable, they may very well be willing to do it (especially if the SMF flight isn't too heavily sold). But if they aren't willing, all you can ask for is a refund. I highly doubt they'll give you a hotel voucher.