Inside city limits, the city's Building Division reviews and inspects all new construction and improvements to existing structures, so that's the office that decides whether your patio needs a permit. I won't assume either way for a patio. When a job needs a permit, we handle the application and set up the inspections, and we check each address with that office first. If you'd rather pull an owner/builder permit, one in your own name, the city has you register under a Public User account.
Across Solano County, one soil data site, FoundationRepairData, puts about 51% of the soil area in high shrink-swell clay, the kind people call expansive clay. That's a county-wide figure, not a reading of your yard. Most of our patio calls here are backyards behind tract homes, where the old slab went in with the house or there's nothing but dirt. We're based in Vacaville and do the same work in Fairfield, Davis, Napa, Vallejo, Concord and other cities around it, so if yours isn't named on the site, call and ask.