Thanks to all those who provided input on this post.
I discovered that the minimal code changes required to upgrade from v1.4 to v2.6 were along these lines:
// to get a value
Object value = getValue(key) --> Object value = bucket.get(key, LegacyDocument.class).content(); // obviously this might get a NPE...
// to save a value
setValue(key, value, expiration) --> bucket.upsert(LegacyDocument.create(key, value, expiration);
// to connect: v1.4
List<URI) uris; // load this list with the urls of the servers in the cluster, e.g., http://server:8091/
client = CouchbaseClient(uris, bucketName, "");
// to connect v2.6
List<String> serverAddresses; // load this with the servers from the cluster, e.g., "server1.your.domain.com", "server2.yourdomain.com" etc.
Cluster cluster = CouchbaseCluster.create(serverAddresses);
Bucket bucket = cluster.openBucket(bucketName, "");
What I ended up learning was that Java Client v1.4.3 and .NET client v1.3.12 CAN connect to server v4.5.1 w/o change.
So the least invasive change was to upgrade the server to v4.5.1 and leave the code alone, which is the route I took.