This is essentially correct, and there is no need for the topology to be subcanonical. But let me clarify:
Whether the topology is subcaninical or not, we have the following: given any family of maps $(c_i \to c)_{i \in I}$ in $C$ the following are equivalents:
- $(c_i \to c)$ is a covering family for the topology $J$.
- The $y(c_i)^a \to y(c)^a$, form a covering family in the canonical topology of $Sh(C,J)$. (where $a$ is the sheafification).
Note that, If you're using the Sieve based definition of topology, this also works. You just need to read "the family $a_i \to a$ is a covering family as, "the sieve generated by the family $(a_i \to a)_{i \in I} $ is a covering sieve". So, there is no need to assume the existence of pullback in $C$ for this to work.
I also want to clarify that the equivalence between $(1)$ and $(2)$ is the only reason for the presence of two of the three conditions in the definition of a topology.
If your "topology" $J$ only satisfies the base-change/pullback-stability condition (i.e. the pullback of a covering sieve is a covering sieve), then this is enough to establish the two key properties:
(A) the sheafification functor preserve finite limits, so that the category of sheaves is a Grothendieck topos.
(B) Condition (1) imply condition (2).
And the other two axioms (the trivial cover is a cover, and the locality condition) are only there to make it so that we also have $(2) \Rightarrow (1)$ so that there is a correspondence between topologies on a category $C$ and left exact localization of the category of presheaves on $C$.
In fact, starting from a notion of covering $J$ that satisfies only the base-change condition, then the set of family that satisfies condition $(2)$ is exactly the Grothendieck topology generated by $J$.